package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.entity.AbdulBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 员工列表对象 employee_list
 *
 * @author ruoyi
 * @date 2025-05-12
 */
@ApiModel("员工列表对象")
public class EmployeeList extends AbdulBaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 员工列表的唯一标识符，自动递增 */
    @ApiModelProperty("主键ID")
    private Long id;

    /** 员工编号，员工的唯一编号，用于标识和查询 */
    @ApiModelProperty("员工编号")
    @Excel(name = "员工编号，员工的唯一编号，用于标识和查询")
    private String employeeCode;

    /** 员工姓名，员工的真实姓名 */
    @ApiModelProperty("员工姓名")
    @Excel(name = "员工姓名，员工的真实姓名")
    private String employeeName;

    /** 别称，员工的别名或昵称 */
    @ApiModelProperty("别称，员工的别名或昵称")
    @Excel(name = "别称，员工的别名或昵称")
    private String alias;

    /** 性别，员工的性别 */
    @ApiModelProperty("性别")
    @Excel(name = "性别，员工的性别")
    private String gender;

    /** 年龄，员工的年龄 */
    @ApiModelProperty("年龄")
    @Excel(name = "年龄，员工的年龄")
    private Long age;

    /** 状态，表示员工的当前状态，如激活、未激活、休假、已离职 */
    @ApiModelProperty("状态")
    @Excel(name = "状态，表示员工的当前状态，如激活、未激活、休假、已离职")
    private String status;

    /** 初始密码，员工的初始登录密码 */
    @ApiModelProperty("初始密码")
    @Excel(name = "初始密码，员工的初始登录密码")
    private String initialPassword;

    /** 门店角色，员工在门店中的角色，如经理、收银员等 */
    @ApiModelProperty("门店角色")
    @Excel(name = "门店角色，员工在门店中的角色，如经理、收银员等")
    private String storeRole;

    /** 所属部门，员工所属的部门名称 */
    @ApiModelProperty("所属部门")
    @Excel(name = "所属部门，员工所属的部门名称")
    private String department;

    /** 出生日期，员工的出生日期 */
    @ApiModelProperty("出生日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期，员工的出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthDate;

    /** 从业日期，员工的入职日期 */
    @ApiModelProperty("从业日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "从业日期，员工的入职日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date employmentDate;

    /** 员工别称显示，用于展示的别称或昵称（与alias可能相同或不同） */
    @ApiModelProperty("员工别称显示")
    @Excel(name = "员工别称显示，用于展示的别称或昵称", readConverterExp = "与=alias可能相同或不同")
    private String employeeAliasDisplay;

    /** 显示顺序，用于确定员工在列表中的显示顺序 */
    @ApiModelProperty("显示顺序")
    @Excel(name = "显示顺序，用于确定员工在列表中的显示顺序")
    private Long displayOrder;

    /** 介绍标签，描述员工的技能或特点的标签，如“擅长美容”、“热情服务”等 */
    @ApiModelProperty("介绍标签")
    @Excel(name = "介绍标签，描述员工的技能或特点的标签，如“擅长美容”、“热情服务”等")
    private String introductionTags;

    /** 列表图片，员工在列表中展示的图片URL */
    @ApiModelProperty("列表图片")
    @Excel(name = "列表图片，员工在列表中展示的图片URL")
    private String listImageUrl;

    /** 轮播图片，员工相关的轮播图片URL列表，以逗号分隔 */
    @ApiModelProperty("轮播图片")
    @Excel(name = "轮播图片，员工相关的轮播图片URL列表，以逗号分隔")
    private String carouselImageUrls;

    /** 列表介绍，员工在列表中的简要介绍 */
    @ApiModelProperty("列表介绍")
    @Excel(name = "列表介绍，员工在列表中的简要介绍")
    private String listIntroduction;

    /** 详情介绍，员工的详细介绍信息 */
    @ApiModelProperty("详情介绍")
    @Excel(name = "详情介绍，员工的详细介绍信息")
    private String detailIntroduction;

    /** 手机号 */
    @ApiModelProperty("手机号")
    @Excel(name = "手机号")
    private String phone;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setEmployeeCode(String employeeCode)
    {
        this.employeeCode = employeeCode;
    }

    public String getEmployeeCode()
    {
        return employeeCode;
    }

    public void setEmployeeName(String employeeName)
    {
        this.employeeName = employeeName;
    }

    public String getEmployeeName()
    {
        return employeeName;
    }

    public void setAlias(String alias)
    {
        this.alias = alias;
    }

    public String getAlias()
    {
        return alias;
    }

    public void setGender(String gender)
    {
        this.gender = gender;
    }

    public String getGender()
    {
        return gender;
    }

    public void setAge(Long age)
    {
        this.age = age;
    }

    public Long getAge()
    {
        return age;
    }

    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }

    public void setInitialPassword(String initialPassword)
    {
        this.initialPassword = initialPassword;
    }

    public String getInitialPassword()
    {
        return initialPassword;
    }

    public void setStoreRole(String storeRole)
    {
        this.storeRole = storeRole;
    }

    public String getStoreRole()
    {
        return storeRole;
    }

    public void setDepartment(String department)
    {
        this.department = department;
    }

    public String getDepartment()
    {
        return department;
    }

    public void setBirthDate(Date birthDate)
    {
        this.birthDate = birthDate;
    }

    public Date getBirthDate()
    {
        return birthDate;
    }

    public void setEmploymentDate(Date employmentDate)
    {
        this.employmentDate = employmentDate;
    }

    public Date getEmploymentDate()
    {
        return employmentDate;
    }

    public void setEmployeeAliasDisplay(String employeeAliasDisplay)
    {
        this.employeeAliasDisplay = employeeAliasDisplay;
    }

    public String getEmployeeAliasDisplay()
    {
        return employeeAliasDisplay;
    }

    public void setDisplayOrder(Long displayOrder)
    {
        this.displayOrder = displayOrder;
    }

    public Long getDisplayOrder()
    {
        return displayOrder;
    }

    public void setIntroductionTags(String introductionTags)
    {
        this.introductionTags = introductionTags;
    }

    public String getIntroductionTags()
    {
        return introductionTags;
    }

    public void setListImageUrl(String listImageUrl)
    {
        this.listImageUrl = listImageUrl;
    }

    public String getListImageUrl()
    {
        return listImageUrl;
    }

    public void setCarouselImageUrls(String carouselImageUrls)
    {
        this.carouselImageUrls = carouselImageUrls;
    }

    public String getCarouselImageUrls()
    {
        return carouselImageUrls;
    }

    public void setListIntroduction(String listIntroduction)
    {
        this.listIntroduction = listIntroduction;
    }

    public String getListIntroduction()
    {
        return listIntroduction;
    }

    public void setDetailIntroduction(String detailIntroduction)
    {
        this.detailIntroduction = detailIntroduction;
    }

    public String getDetailIntroduction()
    {
        return detailIntroduction;
    }

    public void setPhone(String phone)
    {
        this.phone = phone;
    }

    public String getPhone()
    {
        return phone;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("employeeCode", getEmployeeCode())
                .append("employeeName", getEmployeeName())
                .append("alias", getAlias())
                .append("gender", getGender())
                .append("age", getAge())
                .append("status", getStatus())
                .append("initialPassword", getInitialPassword())
                .append("storeRole", getStoreRole())
                .append("department", getDepartment())
                .append("birthDate", getBirthDate())
                .append("employmentDate", getEmploymentDate())
                .append("employeeAliasDisplay", getEmployeeAliasDisplay())
                .append("displayOrder", getDisplayOrder())
                .append("introductionTags", getIntroductionTags())
                .append("listImageUrl", getListImageUrl())
                .append("carouselImageUrls", getCarouselImageUrls())
                .append("listIntroduction", getListIntroduction())
                .append("detailIntroduction", getDetailIntroduction())
                .append("phone", getPhone())
                .toString();
    }
}
